package com.hospital.common.dto.diagnosis.module;

import com.fasterxml.jackson.annotation.JsonFormat;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 诊断记录表
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class DiagnosisRecordDTO
{
    /**
    * 患者id |1
    */
    @NotNull(message = "患者id不能为空")
    private Long patientId;

    /**
    * 药物过敏(0无,1有) |0
    */
    @NotNull(message = "药物过敏不能为空")
    private Integer drugAllergy;

    /**
    * 药物过敏历史 |无
    */
    private String drugAllergyInfo;

    /**
    * 挂号时间 |2025-01-01 00:00:00
    */
    @NotNull(message = "挂号时间不能为空")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime registrationTime;


    /**
    * 是否复诊(0否,1是) |0
    */
    @NotNull(message = "复诊不能为空")
    private Integer referral;

    /**
    * 是否为慢性病患者(0否,1是) |0
    */
    @NotNull(message = "是否为慢性病患者不能为空")
    private Integer chronicDiseases;

    /**
    * 患者主诉 |鼻塞，头疼
    */
    @NotBlank(message = "患者主诉不能为空")
    private String patientComplaints;

    /**
    * 主要诊断 |感冒引发的鼻窦炎
    */
    @NotBlank(message = "主要诊断不能为空")
    private String primaryDiagnosis;

    /**
    * 药物总费 |10.0
    */
    @NotNull(message = "药物总费不能为空")
    private Double medicationCosts;

    /**
    * 就诊费 |10.0
    */
    @NotNull(message = "就诊费不能为空")
    private Double consultationFee;

    /**
    * 药物表 |对乙酰氨基酚片
    */
    private String medication;

    /**
    * 总费用 |20.0
    */
    private Double totalCosts;

    /**
    * 检查结论 |鼻窦炎
    */
    private String diagnosisResult;
}